// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  const db = cloud.database()
  const userCollection = db.collection('users')
  // 获取用户信息
  const { userInfo } = event
  console.log('更新用户信息:', event)
  
  try {
    // 检查用户是否已存在
    const existUser = await userCollection.where({
      _openid: wxContext.OPENID
    }).get()
    
    if (existUser.data.length === 0) {
      return {
        success: false,
        message: '用户不存在',
        openid: wxContext.OPENID
      }
    }
    
    // 用户存在，更新用户信息
    await userCollection.where({
      _openid: wxContext.OPENID
    }).update({
      data: {
        ...userInfo,
        updateTime: db.serverDate()
      }
    })
    
    // 获取更新后的用户数据
    const updatedUser = await userCollection.where({
      _openid: wxContext.OPENID
    }).get()
    
    if (updatedUser.data.length > 0) {
      return {
        success: true,
        message: '用户信息更新成功',
        data: updatedUser.data[0]
      }
    } else {
      return {
        success: false,
        message: '用户信息更新后获取失败',
        openid: wxContext.OPENID
      }
    }
  } catch (error) {
    return {
      success: false,
      message: '更新用户信息失败',
      error: error,
      openid: wxContext.OPENID
    }
  }
}